syntax = "proto3";

package xla;

enum ExecutionModeProto {
  EXECUTION_MODE_UNSPECIFIED = 0;
  EXECUTION_MODE_DEFAULT = 1;
  EXECUTION_MODE_SYNCHRONOUS = 2;
  EXECUTION_MODE_ASYNCHRONOUS = 3;
}

// Mirrors `xla::ExecuteOptions`.
message ExecuteOptionsProto {
  bool arguments_are_tupled = 1;
  bool untuple_result = 2;
  int32 launch_id = 3;
  bool strict_shape_checking = 4;
  bool use_major_to_minor_data_layout_for_callbacks = 8;
  ExecutionModeProto execution_mode = 6;
  repeated int32 non_donatable_input_indices = 7;
}
